今天自己在Ubuntu下搭建了一个SVN服务器,方便以后可以远程管理代码
特此记录了一下搭建的过程

1. 通过apt-get安装subversion

sudo apt-get install subversion
如果安装出错(例如某个包找不到),请先更新本地仓库数据,更新完成后再执行上面的命令重新安装
sudo apt-get update

2.找个目录当做SVN的根目录(目录地址随意)

在home目录下创建一个名为svn的文件夹(文件夹的名字随便起)
mkdir /home/svn

3.创建数据仓库(可以根据需要创建多个)

此处我新建了一个叫ZYQ的仓库
sudo svnadmin create /home/svn/ZYQ

4.进入版本库查看生成的相关文件

依次执行以下命令

cd /home/svn/ZYQ  
ls  

会看到ZYQ目录下面自动生成了一些目录和文件
conf db  format  hooks  locks  README.txt

我们主要关心的是conf和db文件
conf文件夹下是存放主配置文件和用户、权限位置,db文件夹是存放svn转储后的数据。

进入conf文件夹下面
cd conf

conf文件夹中有三个文件,分别是
authz 是设置用户权限文件
passwd 是存储用户及密码文件
svnserve.conf 是主配置文件

5.配置版本库

编辑svnserve.conf
vi svnserve.conf

  将以下参数去掉注释  
  #匿名用户访问权限,默认read,none为不允许匿名用户访问
  anon-access = none 

  #认证用户权限 可写    
  auth-access = write  

  #密码文件为passwd(默认在版本库/conf下面,也可以绝对路径指定文件位置)
  password-db = passwd 

  #权限文件为authz (默认在版本库/conf下面,也可以绝对路径指定文件位置)  
  authz-db = authz 

编辑passwd文件 设定用户名和密码
vi passwd

  #前面是用户名,后面是密码  
  [users]  
  user1 = 123456  
  user2 = 123456  
  user3 = 123456

==编辑authz文件 制定用户组 以及用户组下面的成员和权限 ==
vi authz

  [groups]  
  #定义用户组,以及用户组下面的成员  
  manager = user1 
  guest = user2,user3  

  #manager用户组下面的成员对以根目录起始的ZYQ版本库具有读写权限  
  [ZYQ:/]
  @manager = rw  

  #guest用户组下面的成员对ZYQ版本库下media目录只读权限  
  [ZYQ:/media]     
  @guest = r

6.启动SVN网络服务

sudo svnserve -d -r /home/svn
其中 -d 参数让 svnserve 运行在后台,-r表示代码仓库的根目录,至此一个最简单的SVN服务就搭建好了。

sudo ps aux | grep svnserve 如果启动成功了 可以看到进程
sudo netstat -antp |grep svnserve 查看端口是否启动成功
sudo pkill svnserve 关闭SVN服务